// 加载包
const express = require('express')
const usersApi = require('../controllers/user')
// const validate = require('../validator/user')
const tokenverify = require('../middleware/tokenverify')
const refresh_tokenverify = require('../middleware/refresh_tokenverify')
const multer = require('multer')

const router = express.Router()

// 用户头像存放地址
const userAratarStorage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './public/users/image')
    // ./public/article/image（没有该文件夹，就新建一个）
  },
  filename: function (req, file, cb) {
    // 在这里设定文件名
    cb(null, `${Date.now() + file.originalname}`) // 加上Date.now()可以避免命名重复
  }
})
// 文章图片配置
const userImg = multer({
  storage: userAratarStorage,
  fileFilter: (req, file, cb) => {
    const filetype = file.mimetype.match(/(jpeg|jpg|png|gif)$/)
    // 只能为jpeg、jpg、png、gif的图片
    filetype ? cb(null, true) : cb(new Error("I don't have a clue!"))
  },
  limits: {
    // 大小为2M
    fileSize: 1024 * 1024 * 8
  }
})

// 用户登录
router.post(
  '/login',
  usersApi.login
  // validate.login,
)

// 获取当前用户信息
router.get(
  '/',
  // validate.getlogininfo, //校验，是否携带token
  tokenverify, // token验证
  usersApi.getUser
)

// 获取用户频道
router.get('/channels', usersApi.getUserChannels)

// 更新用户信息
router.patch('/usersInfo', tokenverify, usersApi.updateUserInfo)

// 更新用户头像
router.patch(
  '/avatar',
  tokenverify,
  userImg.single('image'),
  usersApi.updateUserAratar
)

router.put('/refresh', refresh_tokenverify, usersApi.updateUserToken)

module.exports = router
